# 存在异常嵌套的情况下,如果内层try没有捕获到异常,可以传递到外层异常中进行捕获,这种现象叫做异常传递(异常穿透)
# 如果外层还是没有捕获到将会继续向外传递,直到程序终止为止.

try:
    print('外层异常')
    try:
        # 内层try中没有捕获TypeError会传递到外层try中进行处理
        print('内层异常')
        print('123' + 4)
    except NameError as error:
        print('变量没有被定义')
# 当接收到内层传递出来的异常时将会执行如下代码
except TypeError as e:
    print(f'数据类型错误, {e}')
